Communication protocols can allow a “host” computing devices (for example a personal computer, laptop computer, etc.) to communicate with one or more “secondary” devices. For example, media files can be transferred between media players and a host, image files can be transferred from a camera to a host, or input devices can provide input data for the host (e.g., mouse, game controller, etc.). One popular communication protocol is that included in the Universal Serial Bus (USB) Specification.
To better understand various aspects of the disclosed embodiments, conventional systems for interconnecting secondary devices with a host will now be described with reference to FIGS. 12A to 12C.
FIG. 12A shows a first conventional USB system, designated by the general reference character 1200. Conventional system 1200 can include a USB host device 1202, a USB controller 1204 and a circuit that executes a predetermined function 1206. USB host device 1202 communicates with USB controller 1204 via a USB connection 1208. USB controller 1204 can access function 1206 in response to requests from USB host device 1202. In such an arrangement, only the USB host device 1202 accesses the given function 1206. That is, the function 1206 is not common to more than one host device.
FIG. 12B shows a second conventional USB system, this one designated by the reference character 1220. Conventional system 1220 includes a USB host device 1222 connected to a USB controller 1224, via a USB connection 1228, in a similar fashion to that of FIG. 12A. However, in FIG. 12B a second host device 1223 is connected to USB controller 1224 via an interface 1225. In such an arrangement, USB 1222 host and second host 1223 can communicate with one another. However, the two host devices do not share a common function.
FIG. 12C shows a third conventional USB system, this one designated by the reference character 1230. Conventional system 1230 includes the same arrangement as FIG. 12B, but includes function 1236 accessed by second host 1233. In such an arrangement, second host 1233 can have direct access to function 1236. USB host 1232 can access function 1236, but such access must be by way of the second host 1233. As a result, the second host 1233 typically requires additional software, and if necessary, computing power, as requests to access function 1236 by first host 1232 must first be processed by second host 1233.